1. Technical Field
The embodiments of the present invention relate generally to the field of video image processing and, in particular to capturing, processing, and displaying images generated by separate sources.
2. Description of Related Art
Conventional image processing generally utilizes a single computing device having one or more graphics processing units (GPU), central processing units (CPU), and display devices, such as a monitor. Software applications running on the CPU can seamless adjust the resolution of the image generated by the GPU and display it on the monitor. Such resolution adjustments are easily accomplished since the image is entirely generated and processed within a single computing device having a CPU and GPU that function together.
Advanced image processing applications, such as virtual reality applications, simulators, and other large area displays require generating large images having very high resolutions, frame rates, or refresh rates. The high resolutions of such large images often exceed the graphical processing capacity of individual computing devices. In such applications, often an array of computing devices is employed, each having at least one CPU and/or GPU. Each computing device generates a single portion of the image at the desired resolution.
For example, in producing interactive video images of a simulated virtual environment, OpenGL or DirectX graphics systems may be employed on several separate computing devices. Each computing device runs a graphics system, which generates an image representative of a view point of the virtual environment at a particular desired resolution. The separate images are then combined by another computing device to produce a single larger image at the desired resolution.
A comparable situation can arise when transferring high resolution images to a computing device after compressing the image data. Most hardware and software codecs have limitations in terms of image size they can compress. Larger images can only be compressed by splitting up the original image in tiles and compressing each tile separately. After encoding, each of the compressed image tiles is transferred to one or more decoder devices that decompress the image and send it to an image combination module in order to display the different parts after decompressing as a single image at a required resolution. In such a situation, each compressed image tile can be considered as a separate source.
A problem arises when changing the size or resolution of the combined image is desired. The resolution of each individual image must be changed separately. Changing the resolution involves increasing or decreasing the total number of pixels that make up the image. When adding or subtracting pixels, the color assigned to each pixel of the new image is interpolated from the pixel data of the pixels in the corresponding area of the original image. This process generally produces an accurate rendering of the original image at a different resolution. However, the colors at the edges of the new image are often distorted since there are fewer pixels from which to interpolate pixel data. Depending on the desired resolution this may cause significant distortion. Additionally, when combining several separate images which have been individually resized, an artifact typically appears at the edges where the images are joined. This artifact is due to the edge pixels of each image having fewer adjoining pixels from which pixel data may be interpolated accurately, and thus the images do not have corresponding edge details. The artifact may also be due to the decompression of the separate images.
It would be beneficial to provide a method and system for combining images from separate sources to produce a larger image in a manner that does not produce artifacts when the resolution of the combined image is changed.